use clap::Parser;
use crate::command_enum::Commands;

mod demo;
mod command_enum;
mod system;
mod http;
mod util;
mod nginx;

#[derive(Parser,Debug)]
#[command(author, version, about, long_about = None)]
#[command(propagate_version = true)]
struct Cli {
    #[command(subcommand)]
    command: Option<Commands>,
}


fn main() {
    //  直接初始化，采用默认的Subscriber，默认只输出INFO、WARN、ERROR级别的日志
    // Tracing 是一个用于跟踪和日志记录的工具，它允许你在应用程序中添加详细的日志和追踪信息，以便进行调试和分析
    tracing_subscriber::fmt::init();
    // 获取命令行参数
    let cli = Cli::parse();
    // 命令集合
    command_enum::run_it(cli);

}
